package com.zxb.framework.security.context;

import org.springframework.security.core.Authentication;

/**
 * 身份验证信息
 * 
 * @author ruoyi
 */
public class AuthenticationContextHolder
{
    private static final ThreadLocal<Authentication> contextHolder = new ThreadLocal<>();

    public static Authentication getContext()
    {
        return contextHolder.get();
    }

    public static void setContext(Authentication context)
    {
        contextHolder.set(context);
    }

    public static void clearContext()
    {
        contextHolder.remove();
    }
}

//
//作用：
//
//        这个类用来保存和管理 认证信息，它使用 ThreadLocal 来存储认证信息，这样在整个请求线程内都可以随时获取到用户的认证信息。
//        setContext 方法用于保存当前请求的用户身份信息（比如用户登录信息），而 getContext 用于获取这个信息。
//        clearContext 方法用于清除保存的认证信息。
//        通俗解释：你可以把它理解为一个“身份卡夹”，每次请求时把用户的身份卡插入这个卡夹，这样在整个处理请求的过程中，任何地方都可以看到用户的身份卡；当请求结束后就把身份卡取出来。